#include <iostream>

using namespace std;
const int N=110;

int f[N];
int a[N],b[N],p[N],z[N];
int ret;
int n,m;
void dfs(int cur,int cost)
{
	if(cost>=ret)
	{
		return;
	}
	if(cur>m)
	{
		int sum=0;
		for(int i=1;i<=100;i++)
		{
//			cout<<f[i]<<' ';
			sum+=f[i];
			if(sum>0)
				break;
		}
//		cout<<endl;
		if(sum==0)
			ret=min(ret,cost);
		return;
	}
	for(int i=cur;i<=m;i++)
	{
		f[a[i]]-=p[i];
		f[b[i]+1]+=p[i];
		dfs(i+1,cost+z[i]);
		f[a[i]]+=p[i];
		f[b[i]+1]-=p[i];
		dfs(i+1,cost);
	}
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		int s,t,c;
		cin>>s>>t>>c;
		f[s]+=c;
		f[t+1]-=c;
	}
	for(int i=1;i<=m;i++)
	{
		cin>>a[i]>>b[i]>>p[i]>>z[i];
	}
	ret=0x3f3f;
	dfs(1,0);
	cout<<ret<<endl;
	return 0;
}
